import request from '../request-axios.js';
import { API_CONFIG } from '../config.js';

// 遥测数据API
export const telemetryAPI = {
  // 获取遥测数据
  getTelemetryData: (params = {}) => {
    return request.get(API_CONFIG.ENDPOINTS.TELEMETRY_DATA, { params });
  },

  // 保存遥测数据
  saveTelemetryData: (data) => {
    return request.post(API_CONFIG.ENDPOINTS.TELEMETRY_SAVE, null, { params: data });
  },

  // 获取实时遥测数据
  getRealTimeTelemetry: () => {
    return request.get(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/realtime`);
  },

  // 获取历史遥测数据
  getHistoricalTelemetry: (params = {}) => {
    return request.get(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/history`, { params });
  },

  // 导出遥测数据
  exportTelemetryData: (params = {}) => {
    return request.download(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/export`, params, 'telemetry_data.json');
  },

  // 获取遥测数据统计
  getTelemetryStats: (params = {}) => {
    return request.get(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/stats`, { params });
  },

  // 删除遥测数据（支持单个ID或ID数组）
  deleteTelemetryData: (idOrIds) => {
    // 统一处理单个ID和ID数组
    let idsParam;
    if (Array.isArray(idOrIds)) {
      // 批量删除：数组转换为逗号拼接字符串
      idsParam = idOrIds.join(',');
      return request.post(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/batch-delete`, null, { params: { ids: idsParam } });
    } else {
      // 单个删除：使用DELETE方法
      return request.delete(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/${idOrIds}`);
    }
  },

  // 批量删除遥测数据（兼容性方法，实际调用deleteTelemetryData）
  batchDeleteTelemetryData: (ids) => {
    return telemetryAPI.deleteTelemetryData(ids);
  },

  // 获取遥测数据配置
  getTelemetryConfig: () => {
    return request.get(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/config`);
  },

  // 更新遥测数据配置
  updateTelemetryConfig: (data) => {
    return request.put(`${API_CONFIG.ENDPOINTS.TELEMETRY_DATA}/config`, null, { params: data });
  }
};

export default telemetryAPI; 